﻿using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;

namespace Hsp.Auto.Model.Models
{
    /// <summary>
    /// 输出程序引用文件
    /// </summary>
    [Table("ReferenceMaterials")]
    public class ReferenceMaterials
    {
        /// <summary>
        /// 引用文件ID
        /// </summary>
        [DisplayName("ID")]
        public int Id { get; set; }

        /// <summary>
        /// 数据库ID
        /// </summary>
        [DisplayName("数据库ID")]
        public int DbId { get; set; }

        /// <summary>
        /// 项目基础命名空间
        /// </summary>
        [DisplayName("命名空间")]
        public string SpaceName { get; set; }

        /// <summary>
        /// 控制器
        /// </summary>
        [DisplayName("控制器")]
        public string Controller { get; set; }

        /// <summary>
        /// 业务逻辑层
        /// </summary>
        [DisplayName("业务逻辑")]
        public string Bll { get; set; }

        /// <summary>
        /// 数据访问层
        /// </summary>
        [DisplayName("数据访问")]
        public string Dal { get; set; }

        /// <summary>
        /// 实体模型层
        /// </summary>
        [DisplayName("实体模型")]
        public string Model { get; set; }

        /// <summary>
        /// 启用逻辑删除
        /// </summary>
        [DisplayName("逻辑删除")]
        public bool LogicalDelete { get; set; }

        /// <summary>
        /// 实体继承基类
        /// </summary>
        [DisplayName("继承基类")]
        public bool EntityInherits { get; set; }

        /// <summary>
        /// 实体添加特性
        /// </summary>
        [DisplayName("添加特性")]
        public bool EntityAttribute { get; set; }

        /// <summary>
        /// 启用控制器日志
        /// </summary>
        [DisplayName("启用日志")]
        public bool EnableLogging { get; set; }

        /// <summary>
        /// 启用分布式缓存
        /// </summary>
        [DisplayName("启用缓存")]
        public bool EnableCaching { get; set; }

        /// <summary>
        /// 输出文件保存路径
        /// </summary>
        [DisplayName("保存路径")]
        public string SavePath { get; set; }

        /// <summary>
        /// EF上下文名称
        /// </summary>
        [DisplayName("上下文名称")]
        public string EfContext { get; set; }




        /// <summary>
        /// 实体属性启用EfCore特性
        /// </summary>
        [DisplayName("启用EfCore特性")]
        public bool EfCoreAttribute { get; set; }

        /// <summary>
        /// 实体属性启用SqlSugar特性
        /// </summary>
        [DisplayName("启用SqlSugar特性")]
        public bool SqlSugarAttribute { get; set; }

        /// <summary>
        /// 实体属性启用Dapper特性
        /// </summary>
        [DisplayName("启用Dapper特性")]
        public bool DapperAttribute { get; set; }

        /// <summary>
        /// 单数形式输出实体名
        /// </summary>
        [DisplayName("单数形式输出实体名")]
        public bool SingularEntity { get; set; }

        /// <summary>
        /// Bootstrap版本：4，5
        /// </summary>
        [DisplayName("Bootstrap版本")]
        public int BSVersion { get; set; } = 4;


        /// <summary>
        /// 系统框架：1-.Net Framework；2-.Net Core(.net)
        /// </summary>
        [DisplayName("系统框架")]
        public int FrameworkVersion { get; set; } = 2;


    }
}
